﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace BDSim
{

    //相位中心偏离
    public struct caloff_input
    {
        /// <summary>
        /// 当前计算时间
        /// </summary>
        public UTCTime CurTime;

        /// <summary>
        /// 卫星位置(ECF)
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public double[] SatECFPos;

        /// <summary>
        /// 用户位置(ECF)
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public double[] UseECFPos;

        /// <summary>
        /// 卫星在星固系的相位中心偏差（PCO）
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public double[] S_Off;

        /// <summary>
        /// 接收机在东北天的相位中心偏差（PCO）
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public double[] U_Off;
    }

    public struct RandomNoise
    {
        public double idum;		//初始随机值
        public double ran1_iy;	//随机数产生程序中间变量
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
        public double[] ran1_iv;
        public double gasdev_iset;
        public double gasdev_gset;
        public double RanErr;
        public double RWErr;		//随机游走噪声
        //0_1的伪随机数
        public double PR_idum;
    }

    public struct CalRan_Input
    {
        public double DeltRanThH;  //噪声量级
        public RandomNoise pRandomNoise; //随机噪声结构体
    }


}
